Jump To:
Technical Q&As
Apple provides opportunities for developers to create hardware devices, including memory, mass storage, PCI, CardBus, USB, FireWire, and wireless solutions. Developer notes listed in the Apple Hardware topic provide relevant connector, cabling, and pin-out information, physical dimensions, electrical and thermal requirements, and pointers and references to standards.

Hardware Resources
A guided introduction and learning path to developing hardware and device-level software for Apple's computers and servers.  
Document Descriptions
On Off
Display

Sort by
Title
Sort by
Topic
Sorted by
Date
Sequence Grabber - Determining the capture resolution of an IIDC device (HTML)
QA1403: Discusses how to determine the resolution of a captured image from an IIDC device
QuickTime 2005-01-06
Obtaining the name of an external MIDI Device from a MIDI Endpoint (HTML)
QA1374: Get the names of external MIDI Devices from MIDI Endpoints.
Music & Audio 2004-12-01
Common QA and Roadmap for USB Software Development on Mac OS X (HTML)
QA1370: Roadmap for development of USB Software on Mac OS X and some Common Questions and Answers
USB 2004-09-22
Sequence Grabber - Video capture with multiple IIDC cameras (HTML)
QA1365: Discusses factors which influence the number of IIDC cameras that can simultaniously be used for capture.
FireWire 2004-08-25
Rendezvous service types used in Mac OS X (HTML)
QA1312: Provides a list of common Rendezvous service types used in Mac OS X.
Rendezvous 2004-07-14
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
AirPort/802.11, Networking, Rendezvous 2004-07-13
Available FireWire Isochronous Bandwidth (HTML)
QA1356: Discusses attempting to "pre-flight" an isochronous bandwidth allocation request by reading the currently available bandwidth.
Device Drivers, FireWire, Music & Audio, QuickTime 2004-07-07
Discovering all advertised Rendezvous service types (HTML)
QA1337: Explains how to discover all Rendezvous service types being advertised on the local network.
Networking, Rendezvous 2004-06-01
Generating an NMI Without a Programmer's Switch (HTML) ()
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
AirPort/802.11, Apple Hardware, ATA, Bluetooth, Device Drivers, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Mass Storage Devices, Music & Audio, Networking, PCI and PC Card, Performance, Printing, QuickTime, Rendezvous, Scanners, SCSI, Serial, Still Cameras, USB 2004-04-26
Rendezvous enforces the service type format in Panther (HTML)
QA1198: Explains why registering a Rendezvous service might fail on Panther.
Networking, Rendezvous 2004-03-23
DDR SDRAM ICs for PowerBooks and iBooks that use Memory bus slewing (HTML)
QA1344: Specifies DDR SDRAM IC optimization for PowerBooks and iBooks that use Memory bus slewing.
Apple Hardware, Device Drivers, Open Firmware 2004-03-18
Clearing mDNSResponder's cached records (HTML)
QA1310: Clearing the Rendezvous service cache (mDNSResponder's cached records) for testing purposes.
Rendezvous 2004-02-11
The state of mDNSResponder (HTML)
QA1339: Explains how to obtain information regarding the internal state of mDNSResponder.
Networking, Rendezvous 2004-02-06
Issues with boot time KEXT loading (HTML) ()
QA1087: Explains how to solve problems with loading KEXTs at boot time.
Bluetooth, Device Drivers, Ethernet, FireWire, Human Interface Device & Force Feedback, Networking, PCI and PC Card, SCSI, Serial, USB 2004-01-15
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
AirPort/802.11, Apple Hardware, ATA, Bluetooth, Device Drivers, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Mass Storage Devices, Music & Audio, Networking, PCI and PC Card, Performance, QuickTime, SCSI, Serial, USB 2003-10-28
Registering a Rendezvous service multiple times (HTML)
QA1311: Explains why registering the same Rendezvous service twice on the same machine doesn't cause a name conflict.
Networking, Rendezvous 2003-10-23
Rendezvous TXT record rate limiting in Panther (HTML)
QA1293: Explains how mDNSResponder implements TXT record rate limiting in Panther.
Rendezvous 2003-10-23
Sleep vs. Doze on Mac OS X (HTML)
QA1309: Discusses and demonstrates sleep versus doze detection on Machintosh Mac OS X
Apple Hardware, Device Drivers, PCI and PC Card, Performance 2003-10-09
PCI/PCI-X slots on the Power Mac G5 (HTML)
QA1307: Discusses installing PCI/PCI-X cards of different speeds in the Power Mac G5.
PCI and PC Card 2003-09-30
How can I tell if a PCI device has on board I/O space? (HTML)
QA1287: Demonstrates "how to" tell if a PCI device has on board I/O space.
Device Drivers, PCI and PC Card, Performance 2003-09-24
SDRAM Problems With Self-Powered USB Devices (HTML) ()
HW82: Alerts that non-compliant, self-powered USB devices plugged into a G4, can cause problems with low-voltage-sensitive SDRAM .
Apple Hardware, Device Drivers, Human Interface Device & Force Feedback, Mass Storage Devices, Performance, USB 2003-08-21
Bluetooth Radio Power Class for Apple Systems (HTML) ()
QA1278: Notes Preferred Bluetooth Transmitter Characteristics for products designed for Apple Systems.
Apple Hardware, Bluetooth, Device Drivers, Performance 2003-08-06
DRAM DIMM power pin connections for Macintosh Computers (HTML) ()
QA1271: Discusses design considerations for DRAM DIMM power pin connections for Macintosh Computers.
Apple Hardware, Performance 2003-07-04
Power adapter Sensing for the 17" PowerBook (HTML) ()
QA1266: Details Design and detection considerations for 17-inch PowerBook power adapters
Apple Hardware, Performance 2003-06-12
Empty Memory Objects (HTML) ()
QA1259: Describes how two memory management edge cases are handled by the common Mac OS memory allocators.
Apple Hardware, Device Drivers, Performance 2003-04-21
Programmatically causing restart, shutdown and/or logout (HTML) ()
QA1134: Describes how to programmatically cause restart, shutdown, sleep or logout.
Apple Hardware, Device Drivers 2003-02-10
Why does logging keep my Printer Module from working? (HTML) ()
Deprecated - QA1182: Describes some problems with standard printf logging in a Printer Module on Jaguar.
Device Drivers, Printing 2002-11-06
Why don't all of my PDE localizations show up in all applications? (HTML) ()
QA1185: Explains why some PDE localizations might not appear in all applications.
Device Drivers, Printing 2002-10-16
SCSIAction and IOSCSIUserClient on Mac OS X 10.2 (HTML) ()
QA1201: Describes migrating to a new API for SCSI Parallel devices starting with Mac OS X 10.2.
Fibre Channel, FireWire, Mass Storage Devices, Printing, Scanners, SCSI, Still Cameras, USB 2002-09-13
Retain Counts of io_object_t Objects in IOKit.framework (HTML) ()
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
FireWire, Human Interface Device & Force Feedback, Mass Storage Devices, Music & Audio, Printing, Scanners, SCSI, Still Cameras, USB 2002-09-04
Faster DDR DRAM in the 867MHz Power Mac G4 (Mirrored Drive Doors) (HTML) ()
QA1191: Confirms the use of faster DDR DRAM in the 867MHz Power Mac G4 (Mirrored Drive Doors).
Apple Hardware, Device Drivers, Performance 2002-08-19
Sending SCSI commands to storage devices (HTML) ()
QA1179: Explains that Mac OS X does not implement SCSI pass-through for many mass storage devices.
Fibre Channel, FireWire, Mass Storage Devices, Scanners, SCSI, USB 2002-08-06
Disabling a Processor on a Multiprocessor System (HTML) ()
QA1141: Describes how to disable a processor on a multiprocessor system for testing purposes.
Apple Hardware, Open Firmware, Performance 2002-05-22
Workaround for Asynchronous SCSIAction Crashes (HTML) ()
Deprecated - QA1129: Explains how to workaround asynchronous SCSIAction crashes on Mac OS X.
SCSI 2002-03-21
PC100 SDRAM DIMMs on the Flat Panel iMac (HTML) ()
QA1130: Describes PC100 SDRAM DIMM limitations on the "original " Flat Panel iMac.
Apple Hardware, Device Drivers, Performance 2002-03-18
IODeviceTree & the IORegistry (HTML) ()
QA1120: Describes the IODeviceTree plane in the Mac OS X IORegistry.
AirPort/802.11, Apple Hardware, ATA, Bluetooth, Device Drivers, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mass Storage Devices, Music & Audio, Networking, Open Firmware, PCI and PC Card, Printing, Scanners, SCSI, Serial, Still Cameras, USB 2002-02-13
IOLog and Interrupt Context (HTML) ()
QA1100: Describes when IOKit runs at primary (hardware) interrupt context.
Device Drivers, PCI and PC Card 2002-02-13
Power Management; Policy Maker vs. Power Controller (HTML) ()
QA1121: Describes the differences between a Power Management Policy Maker and a Power Management Power Controller.
Apple Hardware 2002-02-13
Working with Configuration Variables (HTML) ()
QA1119: Explains how to delete a specific Open Firmware configuration variable without using Command-Option-P-R.
Apple Hardware, Device Drivers, PCI and PC Card 2002-02-13
Making sense of IOKit error codes (HTML) ()
QA1075: Explains how to interpret I/O Kit error codes.
ATA, Bluetooth, Ethernet, FireWire, Networking, PCI and PC Card, SCSI, Serial, USB 2002-02-07
Energy Star PCI Device (HTML) ()
QA1108: Provides useful information for developers of Energy Star-compliant PCI devices.
Apple Hardware, Device Drivers, PCI and PC Card, Performance 2002-01-15
FCode & OS X (HTML) ()
QA1106: Provides useful tips for Open Firmware debugging on on machines introduced in 2001 or later.
Open Firmware, PCI and PC Card 2002-01-15
IOKit Framework Headers (HTML) ()
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
AirPort/802.11, Apple Hardware, ATA, Bluetooth, Device Drivers, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Mass Storage Devices, Music & Audio, Networking, PCI and PC Card, Performance, Printing, QuickTime, Rendezvous, Scanners, SCSI, Serial, Still Cameras, USB 2002-01-15
Menu Bar Clock and NVRAM (HTML)
QA1102: Explains why booting with the Command-Option-P-R keys doesn't reset date and time preferences.
Apple Hardware, Device Drivers, Performance 2001-12-21
PCI Bus? (HTML)
QA1104: Answers the question, "Do all Macintosh computers have a PCI bus?"
Apple Hardware, Bluetooth, PCI and PC Card, Performance 2001-12-21
Resetting NVRAM to factory defaults (HTML)
QA1103: Describes what happens when you boot holding the Command-Option-P-R keys.
Apple Hardware, Device Drivers, Performance 2001-12-21
Reducing the size of Physical Memory in Open Firmware (HTML)
QA1099: Describes how to configure the Power Macintosh so less memory is recognized than is actually present.
Apple Hardware 2001-12-20
Adding dependencies with kmodload (HTML)
QA1097: Illustrates how to specify dependencies when using kmodload.
ATA, Bluetooth, Device Drivers, Ethernet, FireWire, Mass Storage Devices, Networking, PCI and PC Card, SCSI, Serial, USB 2001-12-05
The dreaded "incompatible flag -framework" error (HTML)
QA1096: Explains how to eliminate the incompatible flag -framework error in Project Builder.
ATA, Ethernet, FireWire, Mass Storage Devices, Networking, PCI and PC Card, SCSI, Serial, USB 2001-12-05
Tips on USB driver matching for Mac OS X (HTML)
QA1076: Gives some tips on getting USB driver matching to work.
USB 2001-10-02
Avoiding Kernel Event Conflicts (HTML)
QA1063: Documents the namespace for the vendor_code field of the kern_event_msg structure.
PCI and PC Card 2001-09-14
SDRAM, CAS Latency for the "Quicksilver" PowerMacG4s (HTML)
QA1071: Describes the supported CAS Latency values for the "QuickSilver", PowerMac G4 CPUs.
Apple Hardware, Device Drivers, Performance 2001-09-13
Determining RAM size & location in New World Machines (HTML)
QA1065: Demonstrates Open Firmware method of determining RAM size & location in New World Machines.
Apple Hardware, Device Drivers, Performance 2001-08-01
Serial API Choice (HTML)
DV39: Discusses the choice of serial APIs supported by traditional Mac OS and Mac OS X.
Device Drivers, Serial 2001-07-02
128Mb SDRAM ICs limitation on original "Bronze Keyboard" Powerbook G3 (HTML)
QA1040: Outlines Memory ICs design limitation on original "Bronze Keyboard" Powerbook G3.
Apple Hardware, Device Drivers 2001-06-21
HID Manager Event Data Underruns (HTML)
QA1038: Explains how to correctly handle HID Manager event queue data underruns.
Human Interface Device & Force Feedback, USB 2001-06-13
Displaying PCI Configuration Registers contents in Open Firmware (HTML)
QA1036: Demonstrates how to display PCI Configuration Resister contents in Open Firmware.
Apple Hardware, Device Drivers, PCI and PC Card, Performance 2001-05-18
Mac OS X and root access (HTML)
QA1013: Describes how to enable root access in Mac OS X.
Device Drivers 2001-03-13
Determining Open Firmware version (HTML)
HW100: Demonstrates how to find out the version of Open Firmware on your Macintosh.
Open Firmware, PCI and PC Card 2000-10-06
Was that a path I just saw? (HTML)
HW101: Describes the Open Firmware path that is occasionally shown at boot time.
Open Firmware, PCI and PC Card 2000-10-06
What is an Open Firmware devalias? (HTML)
HW99: Describes devaliases in Open Firmware.
Open Firmware, PCI and PC Card 2000-10-06
Why didn't I boot from the CD? (HTML)
HW98: Describes the behavior of holding down the "c" key at boot time.
Open Firmware, PCI and PC Card 2000-10-06
Open Firmware Memory bus speed (HTML)
HW97: Describes a method to display memory bus speed for G3 or G4 Macintosh in Open Firmware.
Apple Hardware, Device Drivers, PCI and PC Card 2000-09-22
Open Firmware version number (HTML)
HW96: Discusses the unique values of Open Firmware version numbers.
Apple Hardware, Device Drivers, Performance 2000-09-22
The "/aliases" node in the device tree (HTML)
HW89: Describes the aliases node in the Open Firmware device tree.
Open Firmware, PCI and PC Card 2000-09-05
The "chosen" node in the device tree (HTML)
HW88: Describes how to find the "chosen" node in the Open firmware device tree.
Apple Hardware, Ethernet, Networking, PCI and PC Card 2000-09-05
The "green" PCI bus (HTML)
HW93: Explains why the PCI bus is considered "green".
Apple Hardware, PCI and PC Card 2000-09-05
How many PCI header types exist today? (HTML)
HW92: Briefly describes the three PCI header types defined in the PCI 2.2 specification.
PCI and PC Card 2000-09-05
Open Firmware and the devalias node (HTML)
HW95: Describes why the contents of the Open Firmware devalias node varies between Macintosh models.
Apple Hardware, ATA, Device Drivers, FireWire, Mass Storage Devices, SCSI, USB 2000-09-05
Open Firmware device tree nodes (HTML)
HW86: Explains the usage of the "@n" notation in Open Firmware device tree nodes.
Apple Hardware, PCI and PC Card 2000-09-05
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
AirPort/802.11, Apple Hardware, ATA, Bluetooth, Device Drivers, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Mass Storage Devices, Music & Audio, Networking, PCI and PC Card, Performance, Printing, QuickTime, Rendezvous, Scanners, SCSI, Serial, Still Cameras, USB 2000-09-05
PCI address/data stepping (HTML)
HW94: Explains that Apple does not support PCI address/data stepping.
PCI and PC Card 2000-09-05
PCI class codes (HTML)
HW91: Explains why PCI class codes are important.
Apple Hardware, PCI and PC Card, Performance 2000-09-05
PCI Macintoshes and CardBus controllers (HTML)
HW87: Explains why older PCI Macintoshes do not recognize a Cardbus controller.
Apple Hardware, Device Drivers, PCI and PC Card, Performance 2000-09-05
Locating the 1275-1994 Standard Document (HTML)
HW85: Alerts that the Open Firmware (IEEE 1275-1994) document can't be found at the IEEE Standards Association site.
Open Firmware, PCI and PC Card 2000-07-17
Checking for the Printer Driver (HTML)
DV42: Describes a legacy Mac OS technique avoiding system hangs when using serial drivers on USB systems.
Printing 2000-06-19
Legacy Devices (HTML)
HW84: Discusses why legacy devices with hard-wired I/O addresses may not work properly with Open Firmware.
ATA, Mass Storage Devices, PCI and PC Card, QuickTime 2000-03-20
Maximum Memory for the "Firewire" PowerBook (HTML)
Deprecated - HW83: Discrepancies between PowerBook Developer Note and TIL articles 14870 and 58582, regarding maximum memory configurations.
Apple Hardware 2000-03-13
A SCSI little secret (HTML)
HW81: Details what to expect when accessing the motherboard SCSI bus on the Blue & White G3.
Apple Hardware, Device Drivers, Mass Storage Devices, Performance, SCSI 1999-12-20
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
AirPort/802.11, Apple Hardware, ATA, Bluetooth, Device Drivers, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Mass Storage Devices, Music & Audio, Networking, PCI and PC Card, Performance, Printing, QuickTime, Rendezvous, Scanners, SCSI, Serial, Still Cameras, USB 1999-11-15
PCI Header types (HTML)
HW78: Describes the three required types of PCI headers to be provided in its configuration header space.
Apple Hardware, Device Drivers, PCI and PC Card, Performance 1999-11-15
What is a CardBus host bus adapter HBA? (HTML)
HW79: Explains what a CardBus host bus adapter (HBA) is and discusses its implementation on the Macintosh.
PCI and PC Card 1999-11-15
What is an Open Firmware phandle, and why can't I access it from the Mac OS? (HTML)
HW76: Explains an "Open Firmware phandle" and why it is inaccessible from the Mac OS.
Open Firmware, PCI and PC Card 1999-11-15
When to use PCMCIA, PC Card, and CardBus (HTML)
HW77: Explains the differences between PCMCIA, PC Card, and CardBus.
Device Drivers, PCI and PC Card 1999-11-15
Explanation of SDRAM configuration Nomenclature (HTML)
HW75: Explains the three-part "Device configuration" numbers for SDRAM in the Power Mac G4 Computer Developer Note.
Apple Hardware, Performance 1999-10-18
Are the Name Registry device tree nodes unique? (HTML)
Deprecated - HW64: Discusses whether Name Registry nodes copied from the Open Firmware device tree are unique.
Apple Hardware, Device Drivers, Open Firmware, PCI and PC Card 1999-10-11
Can you explain the words "begin" and "again"? (HTML)
HW70: Explains the Forth looping words "begin" and "again" and how to escape such a loop.
Open Firmware, PCI and PC Card 1999-10-11
How do I change the numeric base for the Open Firmware user interface? (HTML)
HW66: Explains how to change the numeric base for the Open Firmware user interface.
Apple Hardware, Device Drivers, Performance 1999-10-11
How do I determine the top of the Open Firmware dictionary? (HTML)
HW69: Explains how to determine the top of the Open Firmware dictionary.
Apple Hardware, Device Drivers, Performance 1999-10-11
Sample code for allocating an amount of dictionary space (HTML)
HW71: Discusses the allocation and the setting of memory for Dictionary space in Open Firmware.
AirPort/802.11, Apple Hardware, ATA, Bluetooth, Device Drivers, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Mass Storage Devices, Music & Audio, Networking, PCI and PC Card, Performance, Printing, QuickTime, Rendezvous, Scanners, SCSI, Serial, Still Cameras, USB 1999-10-11
Using "words" in Open Firmware (HTML)
HW73: Explains how to search for specific entries within all the global and local Open Firmware words.
Open Firmware, PCI and PC Card 1999-10-11
What is the "dump" word and how do I use it? (HTML)
HW68: Describes the function of the Open Firmware word "dump" and how it can be used.
AirPort/802.11, Apple Hardware, ATA, Bluetooth, Device Drivers, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Mass Storage Devices, Music & Audio, Networking, PCI and PC Card, Performance, Printing, QuickTime, Rendezvous, Scanners, SCSI, Serial, Still Cameras, USB 1999-10-11
What is the return stack in Open Firmware and can I use it? (HTML)
HW67: Describes the purpose of the Open Firmware return stack and how developers can use it.
Open Firmware, PCI and PC Card 1999-10-11
What is the word "see" and how do I use it to help me find what a word does? (HTML)
HW72: Explains the function and use of the Open Firmware word "see".
Apple Hardware, Device Drivers, Performance 1999-10-11
What numeric base is the default for the Open Firmware user interface? (HTML)
HW65: Describes how the default numeric base used by the Open Firmware user interface is hexadecimal.
AirPort/802.11, Apple Hardware, ATA, Bluetooth, Device Drivers, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Mass Storage Devices, Music & Audio, Networking, PCI and PC Card, Performance, Printing, QuickTime, Rendezvous, Scanners, SCSI, Serial, Still Cameras, USB 1999-10-11
Detecting specific ROM-in-RAM Mac (HTML) ()
Deprecated - HW49: Identifying a Mac by name ("iMac"), and better alternatives for determining specific features ("has Firewire").
Apple Hardware 1999-10-05
Driver Gestalt & Icon Services (HTML) ()
DV37: Describes the interaction of Driver Gestalt & Icon Services
Human Interface Device & Force Feedback 1999-10-05
Which Machines Support Driver Services Library and the MP Nanokernel? (HTML) ()
HW63: Lists the systems that do and don't support the Driver Services Library and the MP Nanokernel.
Apple Hardware, Device Drivers, Performance 1999-07-12
Timely Issues - 1904 (HTML) ()
OPS23: Explains why the beginning of the year 1904 was chosen for epoch of the Time global variable.
Apple Hardware 1999-05-17
Use the Doorbell (HTML) ()
Deprecated - FW01: Explains the function of the FireWire Serial Bus Protocol 2 (SBP2) doorbell.
FireWire 1999-05-17